package cn.tedu.csmall.product.service;

import cn.tedu.csmall.product.pojo.dto.BrandAddNewDTO;
import cn.tedu.csmall.product.pojo.dto.BrandUpdateDTO;
import cn.tedu.csmall.product.pojo.entity.Brand;
import cn.tedu.csmall.product.pojo.vo.BrandListItemVO;
import cn.tedu.csmall.product.pojo.vo.BrandStandardVO;
import cn.tedu.csmall.product.pojo.vo.CategoryStandardVO;

import java.util.List;

/**
 * 处理品牌数据的业务接口
 *
 * @author Tan
 * @version 0.0.1
 */
public interface IBrandService {

    /**
     * 添加品牌
     * @param brandAddNewDTO    封装添加品牌的属性
     * @return                  返回添加状态
     */
    void addNew(BrandAddNewDTO brandAddNewDTO);

    /**
     * 根据id删除品牌
     * @param id
     */
    void delete(Long id);

    /**
     * 根据id修改品牌信息
     * @param brandUpdateDTO
     */
    void updateById(BrandUpdateDTO brandUpdateDTO);

    /**
     * 查询品牌列表
     * @return
     */
    List<BrandListItemVO> list();

    /**
     * 启用品牌
     * @param id
     */
    void enable(Long id);

    /**
     * 不启用品牌
     * @param id
     */
    void unEnable(Long id);

    /**
     * 根据id查询品牌详情
     * @param id
     * @return
     */
    BrandStandardVO getStandardById(Long id);

    /**
     * 重建缓存
     */
    void rebuildCache();


}
